<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>demo12-slot02-插槽prop</title>
</head>
<script src="../libs/vue.js"></script>
<style>
    .container{
        width: 100%;
        min-width: 320px;
        max-width: 640px;

        margin:0 auto;
    }
</style>
<body>
    <div id="app"> 

        <base-layout>

        <template v-slot:header>
            <h1>Here slot header </h1>
          </template>
        
          <template v-slot:default>


            <current-user>
              <template v-slot:slot01="childSlotProps">
                来自parent的user 降维打击：{{ childSlotProps.user.name }}
              </template>
              <!-- 
                这个具名插槽没有用？？？ 
                注意！最初写的是：v-slot:userRemark  dom attribute是不识别大写的！！！！！！ 要么全小写！要么用kebab-case写法！！！
              -->
              <template v-slot:user-remark="aaa">
                来自parent的user remark 降维打击：{{ aaa.remark }}
              </template>
            </current-user>
            
            <p>A slot default</p>
            <p>一个不带 name 的 &lt;slot&gt; 出口会带有隐含的名字“default”。</p>
          </template>
        
          <template v-slot:footer>
            <h3>Slot footer</h3>
          </template>

        </base-layout>
    </div>
</body>

<script>

Vue.component('current-user',{
  data:function(){
    return {
      user:{
        id:1,
        name:'hh01',
        age:18,
        remark:'来自child的user信息'
      }
    }
  },
  template:`<div>
    <slot v-bind:user="user" name="slot01">current-user当前用户：{{user.name}}</slot><hr><br>
    <slot v-bind:remark="user.remark" name="user-remark">current-user用户描述：{{user.remark}}</slot><hr><br>
    </div>`
})

Vue.component('base-layout',{
    template:`<div class="container">
  <header>
    <!-- 我们希望把页头放这里 -->
    <slot name="header"></slot>

  </header>
  <main>
    <!-- 我们希望把主要内容放这里  --> 
    <slot></slot>
  </main>
  <footer>
    <!-- 我们希望把页脚放这里 -->
    <slot name="footer"></slot>
  </footer>
</div>`
});

var app = new Vue({
  el: '#app'
});
</script>
</html>